#!/bin/bash

# Kafka消费者命令格式脚本

echo "=== Kafka消费者命令格式 ==="
echo "时间: $(date)"
echo ""

# 颜色定义
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 配置变量
KAFKA_HOME="/opt/module/kafka"
BOOTSTRAP_SERVER="hadoop102:9092"
TOPIC="topic_db_fast_food"

echo -e "${BLUE}原始命令:${NC}"
echo "bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic topic_db_fast_food"
echo ""

echo -e "${BLUE}修改后的格式:${NC}"
echo ""

# 1. 标准格式（推荐）
echo -e "${GREEN}1. 标准格式（推荐）:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC"
echo ""

# 2. 带完整路径的格式
echo -e "${GREEN}2. 带完整路径的格式:${NC}"
echo "$KAFKA_HOME/bin/kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC"
echo ""

# 3. 带额外选项的格式
echo -e "${GREEN}3. 带额外选项的格式:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --from-beginning \\"
echo "  --property print.timestamp=true \\"
echo "  --property print.key=true \\"
echo "  --property print.value=true"
echo ""

# 4. 一行格式
echo -e "${GREEN}4. 一行格式:${NC}"
echo "kafka-console-consumer.sh --bootstrap-server $BOOTSTRAP_SERVER --topic $TOPIC"
echo ""

# 5. 带输出重定向的格式
echo -e "${GREEN}5. 带输出重定向的格式:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --from-beginning > /tmp/kafka_output.log 2>&1"
echo ""

# 6. 后台运行格式
echo -e "${GREEN}6. 后台运行格式:${NC}"
echo "nohup kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --from-beginning > /tmp/kafka_output.log 2>&1 &"
echo ""

# 7. 带消费者组ID的格式
echo -e "${GREEN}7. 带消费者组ID的格式:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --group fast_food_consumer_group \\"
echo "  --from-beginning"
echo ""

# 8. 带分区指定的格式
echo -e "${GREEN}8. 带分区指定的格式:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --partition 0 \\"
echo "  --from-beginning"
echo ""

# 9. 带偏移量指定的格式
echo -e "${GREEN}9. 带偏移量指定的格式:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --offset 1000"
echo ""

# 10. 带超时设置的格式
echo -e "${GREEN}10. 带超时设置的格式:${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server $BOOTSTRAP_SERVER \\"
echo "  --topic $TOPIC \\"
echo "  --timeout-ms 5000 \\"
echo "  --from-beginning"
echo ""

echo -e "${BLUE}常用选项说明:${NC}"
echo "  --bootstrap-server    : Kafka服务器地址"
echo "  --topic               : 要消费的主题名称"
echo "  --from-beginning      : 从最早的消息开始消费"
echo "  --group               : 消费者组ID"
echo "  --partition           : 指定分区"
echo "  --offset              : 指定偏移量"
echo "  --timeout-ms          : 超时时间（毫秒）"
echo "  --property print.timestamp=true  : 显示时间戳"
echo "  --property print.key=true        : 显示键"
echo "  --property print.value=true      : 显示值"
echo ""

echo -e "${BLUE}实际使用示例:${NC}"
echo ""

# 示例1：监控Maxwell输出
echo -e "${YELLOW}示例1: 监控Maxwell输出${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server hadoop102:9092 \\"
echo "  --topic maxwell_smart_tour \\"
echo "  --from-beginning"
echo ""

# 示例2：监控fast_food主题
echo -e "${YELLOW}示例2: 监控fast_food主题${NC}"
echo "kafka-console-consumer.sh \\"
echo "  --bootstrap-server hadoop102:9092 \\"
echo "  --topic topic_db_fast_food \\"
echo "  --from-beginning \\"
echo "  --property print.timestamp=true"
echo ""

# 示例3：后台运行并保存日志
echo -e "${YELLOW}示例3: 后台运行并保存日志${NC}"
echo "nohup kafka-console-consumer.sh \\"
echo "  --bootstrap-server hadoop102:9092 \\"
echo "  --topic topic_db_fast_food \\"
echo "  --from-beginning > /tmp/fast_food_consumer.log 2>&1 &"
echo ""

echo -e "${BLUE}使用建议:${NC}"
echo "1. 推荐使用标准格式，便于阅读和维护"
echo "2. 使用 --from-beginning 选项可以从最早的消息开始消费"
echo "3. 使用 --property 选项可以自定义输出格式"
echo "4. 后台运行时记得保存日志以便调试"
echo "5. 生产环境建议使用消费者组ID"

echo ""
echo "=== 格式说明完成 ===" 